import java.math.BigInteger;

public class Principal {
		
	/* Proyecto Final RC 2 - 1º Año Programación - Laboratorio II
	 * 
	 * Integrantes:
	 * 				Gustavo Tell
	 * 				Gustavo Ferreyra
	 */
	 
	
	public static void main(String[] args) {
		System.out.println("INICIO PROGRAMA PRINCIPAL");
		
		/*############  CARGA DE LOS COMPONENTES DEL SISTEMA ############*/
		
		// Creamos nuestra Biblioteca
		Biblioteca biblioteca = new Biblioteca("Biblioteca del Campus Oak");
		biblioteca.modificarPlazo(8);
		
		// Registramos Usuarios
		biblioteca.registrarUsuario(33553160, "Gustavo", "Tell", 02, 02, 1988, "Chile 256", 2300, "Rafaela", 501904);
		biblioteca.registrarUsuario(35953949, "Gustavo", "Ferreyra", 22, 10, 1991, "500 Millas 296", 2300, "Rafaela", 451375);
		
		// Queremos registrar un usuario que ya existe
		biblioteca.registrarUsuario(35953949, "Gustavo", "Ferreyra", 22, 10, 1991, "500 Millas 296", 2300, "Rafaela", 451375);
		
		// Registramos Editoriales
		biblioteca.registrarEditorial(01, "Ivrea");
		biblioteca.registrarEditorial(02, "Salamandra");
		biblioteca.registrarEditorial(03, "Minotauro");
		
		// Registramos los tipos
		biblioteca.registrarTipo(01, "Ciencia Ficcion");
		biblioteca.registrarTipo(02, "Infantil");
		biblioteca.registrarTipo(03, "Novela");
		biblioteca.registrarTipo(04, "Ensayo");
		biblioteca.registrarTipo(05, "Autoayuda");
		
		// Creamos un libro
		biblioteca.registrarLibro(new BigInteger("9234356467"),"El Señor de Los Anillos",2008,01,01);
		biblioteca.registrarLibro(new BigInteger("4534553456"),"Harry Potter y la Orden Del Fenix",2004,02,02);
		biblioteca.registrarLibro(new BigInteger("5534553494"),"Harry Potter y la Piedra Filosofal",2007,02,02);
		
		// Un libro se estropea
		biblioteca.deshabilitarLibro(new BigInteger("9234356467"));
		
		// Intentamos registrar otro libro de un ejemplar que ya tenemos
		biblioteca.registrarLibro(new BigInteger("5534553494"),"Harry Potter y la Piedra Filosofal",2007,01,01);
		
		
		/*############  EMPIEZA LA UTILIZACION DEL SISTEMA ############*/ 
		
		
		// Encontrar libros que contengan tal frase
		biblioteca.buscarLibroPorFrase("harry");
		
		// Realizamos prestamos
		biblioteca.prestarLibro(35953949, new BigInteger("9234356467"));
		biblioteca.prestarLibro(35953949, new BigInteger("4534553456"));
		
		// Una persona viene a devolver un libro, nos fijamos en el ISBN
		biblioteca.cancelarPrestamo(new BigInteger("9234356467"));
		biblioteca.cancelarPrestamo(new BigInteger("4534553456"));
		
		// Mostramos los datos de algun libro
		biblioteca.buscarLibroPorIsbn(new BigInteger("9234356467"));
		
		// Viene otra persona, justo a buscar un libro recien devuelto
		biblioteca.prestarLibro(33553160, new BigInteger("4534553456"));
		
		// Un alumno es expulsado
		biblioteca.deshabilitarUsuario(33553160);
		
		
		// Dicho alumno viene y quiere retirar un libro
		biblioteca.prestarLibro(33553160, new BigInteger("5534553494"));
		
		// Cual es el libro mas leido?
		biblioteca.buscarLibroMasLeido();
		
		// Consultamos Infractores
		biblioteca.imprimirInfractores();
		
		biblioteca.imprimirUsuarios();
		
		biblioteca.imprimirEditoriales();
		
		biblioteca.imprimirTipos();
		
		biblioteca.imprimirLibros();
	}

}
